@echo off
setlocal enabledelayedexpansion
chcp 65001 > nul
echo 设置字符集为UTF-8

:: 获取管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo 请求管理员权限...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"

:: hosts文件路径
set hostsPath=C:\Windows\System32\drivers\etc\hosts

:: 检查hosts文件是否存在
if not exist "!hostsPath!" (
    echo 文件 "!hostsPath!" 不存在。
    goto end
)

:: 以管理员权限打开记事本并加载hosts文件
notepad.exe "!hostsPath!"

:end
echo 操作完成。
pause
